package com.lemon.exam.service;

import com.lemon.exam.common.crud.BaseService;
import com.lemon.exam.common.web.Result;
import com.lemon.exam.entity.dto.PaperAnswerDTO;
import com.lemon.exam.entity.po.PaperAnswerPO;
import com.lemon.exam.entity.vo.PaperAnswerVO;
import com.lemon.exam.entity.vo.PaperVO;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.List;

/**
 * 试卷-答案表 服务接口
 *
 * @author Lemon
 * @since 2025/05/17 10:51:17
 */
public interface IPaperAnswerService extends BaseService<PaperAnswerPO, Long> {
    Flux<PaperVO> findPaperList(String type, int pageNum, int pageSize);

    Mono<Result<PaperAnswerVO>> getPaperAnswer(Long paperId);

    Mono<String> answer(PaperAnswerDTO param);

    Mono<PaperAnswerPO> findAnswerByPaperId(Long paperId, Long answerId);

    Mono<Boolean> hasNextPaperAnswerByPaperId(Long paperId);

    Mono<String> update(Long id, String questionScore, Double totalScore, Integer passed);

    Mono<List<PaperAnswerPO>> findAnswerListByPaperId(Long paperId);
}
